// pages/menu/menu.js
Page({
    data: {
        currentTable: null,
        category: [], // 分类列表
        currentCategoryId: null, // 当前选中分类ID
        dishes: [], // 当前分类下的菜品
        activeIndex: 0, // 左侧选中分类索引
        scrollTop: 0, // 右侧滚动位置
        cartList: []
    },
    onLoad() {
        // 1. 优先读取桌号缓存（关键修复）
        this.setData({
            currentTable: wx.getStorageSync("currentTable")
        });
        if (!this.data.currentTable) {
            wx.showToast({ title: "未获取到桌号信息", icon: "none" });
            setTimeout(() => wx.navigateBack(), 1500); // 返回首页重新扫码
            return;
        }
        // 2. 获取用户ID并加载数据
        this.userId = wx.getStorageSync('userId');
        if (!this.userId) {
            const { login } = require('../../utils/login.js');
            login().then(user => {
                this.userId = user.id;
                this.loadShoppingCart();
                this.loadDishes(); // 加载菜单
                this.loadCategory(); // 加载分类
            });
            return;
        }

        // 3. 正常加载数据
        this.loadShoppingCart();
        this.loadDishes(); // 加载菜单
        this.loadCategory();
    },

    // 加载所有分类
    // 确保loadCategory方法正确设置categories数据
    loadCategory() {
        wx.request({
            url: 'http://localhost:8080/category/list',
            success: (res) => {
                if (res.data.code === 200 && res.data.data.length > 0) {
                    this.setData({
                        categories: res.data.data,
                        currentCategoryId: res.data.data[0].id, // 默认选中第一个分类
                        activeIndex: 0 // 默认选中第一个分类
                    });
                    // 加载第一个分类的菜品
                    this.loadDishesByCategory();
                } else {
                    wx.showToast({ title: "分类加载失败", icon: "none" });
                }
            }
        });
    },

    // 按分类ID加载菜品
    loadDishesByCategory() {
        wx.request({
            url: 'http://localhost:8080/dish/byCategory',
            data: {
                page: 1,
                pageSize: 50, // 一次加载足够多的菜品
                categoryId: this.data.currentCategoryId
            },
            success: (res) => {
                if (res.data.code === 200) {
                    this.setData({
                        dishes: res.data.data.records
                    });
                } else {
                    wx.showToast({ title: "菜品加载失败", icon: "none" });
                }
            }
        });
    },

    // 切换分类
    changeCategory(e) {
        const index = e.currentTarget.dataset.index;
        const categoryId = e.currentTarget.dataset.id;
        this.setData({
            activeIndex: index,
            currentCategoryId: categoryId,
            scrollTop: 0 // 右侧回到顶部
        });
        // 加载选中分类的菜品
        this.loadDishesByCategory();
    },

    // 加载菜单数据（核心功能）
    loadDishes() {
        wx.request({
            url: 'http://localhost:8080/dish/page', // 假设后端菜单接口
            data: {
                page:1,
                pageSize:10
            },
            success: (res) => {
                if (res.data.code === 200) {
                    this.setData({ dishes: res.data.data.records}); // 渲染菜单列表
                } else {
                    wx.showToast({ title: "菜单加载失败", icon: "none" });
                }
            },
            fail: () => {
                wx.showToast({ title: "服务器连接失败", icon: "none" });
            }
        });
    },

    // 加载购物车方法
    loadShoppingCart() {
        const tableId = this.data.currentTable.id;
        wx.request({
            url: `http://localhost:8080/shoppingCart/table/${tableId}`,
            data: { userId: this.userId },
            success: (res) => {
                this.setData({ cartList: res.data.data || [] });
            }
        });
    },

    // 加入购物车方法
    addToCart(e) {
        const dish = e.currentTarget.dataset.dish;
        wx.request({
            url: 'http://localhost:8080/shoppingCart/add',
            method: 'POST',
            data: {
                tableId: this.data.currentTable.id,
                userId: this.userId,
                dishId: dish.id,
                quantity: 1
            },
            success: () => {
                wx.showToast({ title: "已加入购物车" });
                this.loadShoppingCart(); // 刷新购物车
            }
        });
    }
});